//
//  EmoticonPackage.swift
//  01-表情键盘
//
//  Created by 白利兵 on 15/10/27.
//  Copyright © 2015年 itheima. All rights reserved.
//

import UIKit
// 表情包模型
class EmoticonPackage: NSObject {
    
    // 文件件名称
    var id: String?
    // 表情包名称
    var group_name_cn: String?
    // 定义表情数组
    lazy var emoticons = [Emoticon]()
    // 字典转模型
    init(dict: [String: AnyObject]){
        var index = 0
        // 初始化父类
        super.init()
        id = dict["id"] as? String
        group_name_cn = dict["group_name_cn"] as? String
        // 创建一个数组(如果数组表情数组则执行下面)
        if let dictArray = dict["emoticons"] as? [[String: AnyObject]] {
            // 遍历数组
            for var emoDict in dictArray {
                // 字典转模型
                if let png = emoDict["png"] as? String, dir = id {
                    // 2> 重新设置字典的 png 的 value
                    emoDict["png"] = dir + "/" + png
                }
                emoticons.append(Emoticon(dict: emoDict))
                index += 1
                index = index % 20
                // 如果是最后一个则追加为删除按钮
                if index == 0 {
                   emoticons.append(Emoticon(Remove: true))
                }
            }
        }
        // 添加空白按钮
        appendEmptyEmoticon()
    }
    // 添加空白表情方法
    private func appendEmptyEmoticon() {
        // 获取剩余数量
        let count = emoticons.count % 21
        // 只有有剩余或者最近才添加空白表情
        if emoticons.count > 0 && count == 0 {
            return
        }
        print("剩余表情为\(count)")
            // 遍历剩余表情
            for _ in count..<20 {
                // 添加空白表情
                emoticons.append(Emoticon(empty: true))
            }
            // 末尾添加删除按钮
            emoticons.append(Emoticon(Remove: true))
    }
    // 重写description方法
    override var description: String {
        let keys = ["id", "group_name_cn", "emoticons"]
        return dictionaryWithValuesForKeys(keys).description
    }
    
}












